1
ISA 合約與架構狀態
AI031Lesson 3
00:00

指令集架構(ISA) 作為一個基本的 抽象層級 ,也是軟體與硬體之間的正式契約。雖然高階語言如 C 能隱藏複雜性,但 ISA 會揭示 架構狀態——即處理器暫存器與記憶體的精確配置。

1. 架構狀態

x86-64 處理器透過幾個關鍵組件來定義其狀態:

  • 程式計數器(%rip): 儲存下一個指令的位址。
  • 整數暫存器檔案: 16 個通用暫存器(例如, %rax%rbx)用於儲存 64 位元的值。
  • 條件碼: 用於控制流程的旗標(ZF、SF、CF、OF)。
  • 向量暫存器: 例如 YMM 暫存器 (256 位元)用於 SIMD 運算。

2. 記憶體抽象

機器碼將記憶體視為一個巨大的 字節可尋址陣列。雖然 x86-64 支援 64 位元虛擬位址,但目前的實作通常使用 48 位元位址空間($2^{48}$ 字節)。我們將資料大小分類為 字(Word) (16 位元), 雙字(Double word) (32 位元),以及 四字(Quad word) (64 位元)。

CPU(狀態)%rip(PC)暫存器(%rax…)條件碼ISA 合約movq、ret、leaq虛擬記憶體0xFFFF...(堆疊)0x0000...(程式碼)

3. 發展與相容性

摩爾定律驅動,英特爾已從 8086 演進到 Core i7 Haswell。ISA 確保 向後相容性,使舊有的機器碼可在現代多核心、超執行緒的硬體上執行。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>